<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="../../resources/js-test.js"></script>
</head>
<body>
<p id="description">This test checks that deletion does not leave unnecessary nested divs.</p>
<div id="console"></div>
<script>

var sel = document.getSelection();
var root = document.createElement("root");
document.body.appendChild(root);


function createEditable(tagName, markup) {
    var node = document.createElement(tagName);
    node.contentEditable = true;
    node.innerHTML = markup;
    return node;
}

function testDelete(tagName, originalMarkup, expected) {
    var node = createEditable(tagName, originalMarkup);
    root.appendChild(node);

    node.focus();
    document.execCommand("SelectAll", false);
    document.execCommand("Delete", false);

    confirmedMarkup = node.innerHTML;

    shouldBe("confirmedMarkup", "'" + expected + "'");
}

testDelete("div", "Hello", "");
testDelete("div", "<div>Hello</div>", "<br>");
testDelete("div", "<div id=\"mydiv\">Hello</div>", "<div id=\"mydiv\"><br></div>");
testDelete("div", "<div><div>Hello</div></div>", "<br>");
testDelete("div", "<div><b><div><i>Hello</i></div></b></div>", "<b><br></b>");
testDelete("div", "<div><b><div style=\"border: solid red\"><i>Hello</i></div></b></div>", "<b><div style=\"border: solid red\"><br></div></b>");
testDelete("div", "<div>Hello</div><div>world</div>", "<br>");
testDelete("div", "<div>Hello</div><div>world</div>", "<br>");
testDelete("div", "<div><p>Hello</p></div><p>world</p></div>", "<p><br></p>");

root.style.display = "none";

</script>
</body>
</html>
